﻿using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Excel;
using OfficeOpenXml.Table;
using System;
using System.Collections.Generic;
using System.Text;

namespace NP.BPMReportPlatform.GC.Dto
{

    /// <summary>
    /// 获取工程取消订单出参
    /// </summary>
    [ExcelExporter(Name = "报表数据", TableStyle = TableStyles.Light10, AutoFitAllColumn = true)]
    public class GetGCCancelOrderOutput
    {
        /// <summary>
        /// 单据号
        /// </summary>
        [ExporterHeader(DisplayName = "单据号")]
        public string InstanceNumber { get; set; }

        /// <summary>
        /// 申请时间
        /// </summary>
        [ExporterHeader(DisplayName = "申请时间")]
        public DateTime? AddTime { get; set; }

        /// <summary>
        /// 申请人
        /// </summary>
        [ExporterHeader(DisplayName = "申请人")]
        public string AddUserName { get; set; }

        /// <summary>
        /// 单据详情链接
        /// </summary>
        [IEIgnore(IsExportIgnore = true)]
        public string Url { get; set; }


        /// <summary>
        /// 单据状态
        /// </summary>        
        [ExporterHeader(DisplayName = "单据状态")]
        public string OrderStatus { get; set; }

        /// <summary>
        /// 负责销售员
        /// </summary>
        [ExporterHeader(DisplayName = "负责销售员")]
        public string SellUserName { get; set; }

        /// <summary>
        /// E助手单号
        /// </summary>
        [ExporterHeader(DisplayName = "E助手单号")]
        public string EAssistantNumber { get; set; }

        /// <summary>
        /// 公司
        /// </summary>
        [ExporterHeader(DisplayName = "公司")]
        public string CompanyCode { get; set; }


        /// <summary>
        /// 客户编码
        /// </summary>
        [ExporterHeader(DisplayName = "客户编码")]
        public string CustomerCode { get; set; }


        /// <summary>
        /// 客户名称
        /// </summary>
        [ExporterHeader(DisplayName = "客户名称")]
        public string CustomerName { get; set; }

        /// <summary>
        /// 商机号
        /// </summary>
        [ExporterHeader(DisplayName = "商机号")]
        public string OpportunityNumber { get; set; }

        /// <summary>
        /// 项目名称
        /// </summary>
        [ExporterHeader(DisplayName = "项目名称")]
        public string ProjectName { get; set; }


        /// <summary>
        /// 取消原因分类
        /// </summary>
        [ExporterHeader(DisplayName = "取消原因分类")]
        public string ReasonClassification { get; set; }

        /// <summary>
        /// 取消原因
        /// </summary>
        [ExporterHeader(DisplayName = "取消原因")]
        public string Reason { get; set; }

        /// <summary>
        /// 物料编号
        /// </summary>
        [ExporterHeader(DisplayName = "物料编号")]
        public string MaterialCode { get; set; }

        /// <summary>
        /// 物料名称
        /// </summary>
        [ExporterHeader(DisplayName = "物料名称")]
        public string MaterialName { get; set; }

        /// <summary>
        /// 取消数量
        /// </summary>
        [ExporterHeader(DisplayName = "取消数量")]
        public int CancelQuantity { get; set; }

        /// <summary>
        /// 取消订单A价总金额（元）
        /// </summary>
        [ExporterHeader(DisplayName = "取消订单A价总金额（元）")]
        public decimal CancelATotalAmount { get; set; }


        /// <summary>
        /// 取消订单开票总金额（元）
        /// </summary>
        [ExporterHeader(DisplayName = "取消订单开票总金额（元）")]
        public decimal CancelInvoicingTotalAmount { get; set; }


        /// <summary>
        /// 下单日期
        /// </summary>
        [ExporterHeader(DisplayName = "下单日期")]
        public DateTime? OrderDate { get; set; }

        /// <summary>
        /// 下单状态
        /// </summary>
        [ExporterHeader(DisplayName = "下单状态")]
        public string Status { get; set; }

        /// <summary>
        /// 呆滞数量
        /// </summary>
        [ExporterHeader(DisplayName = "呆滞数量")]
        public int SluggishQuantity { get; set; }

        /// <summary>
        /// 呆滞金额
        /// </summary>
        [ExporterHeader(DisplayName = "呆滞金额")]
        public decimal SluggishAmount { get; set; }

        /// <summary>
        /// 呆滞产品批次号
        /// </summary>
        [ExporterHeader(DisplayName = "呆滞产品批次号")]
        public string SluggishProductBatch { get; set; }

        /// <summary>
        /// 呆滞品初步解决方案
        /// </summary>
        [ExporterHeader(DisplayName = "呆滞品初步解决方案")]
        public string SluggishSolution { get; set; }

        /// <summary>
        /// 呆滞品预计处理完成日期
        /// </summary>
        [ExporterHeader(DisplayName = "呆滞品预计处理完成日期")]
        public DateTime? SluggishCompletionDate { get; set; }

        /// <summary>
        /// 罚款类型
        /// </summary>
        [ExporterHeader(DisplayName = "罚款类型")]
        public string FineType { get; set; }

        /// <summary>
        /// 罚款金额（元）
        /// </summary>
        [ExporterHeader(DisplayName = "罚款金额（元）")]
        public decimal FineAmount { get; set; }

        /// <summary>
        /// 改制费用
        /// </summary>
        [ExporterHeader(DisplayName = "改制费用")]
        public string RestructuringCost { get; set; }

    }
}
